Alias burying: Unique variables without destructive reads
نویسنده
چکیده
An unshared object can be accessed without regard to possible conflicts with other parts of a system, whether concurrent or single-threaded. A unique variable (sometimes known as a ‘free’ or ‘linear’ variable) is one that either is null or else refers to an unshared object. Being able to declare and check which variables are unique improves a programmer’s ability to avoid program faults. In previously described uniqueness extensions to imperative languages, a unique variable can be accessed only with a destructive read, which nullifies it after the value is obtained. This approach suffers from several disadvantages: the use of destructive reads increases the complexity of the program which must continually restore nullified values; adding destructive reads changes the semantics of the programming language; and many of the nullifications are actually unnecessary. We demonstrate instead that uniqueness can be preserved through the use of existing language features. We give a modular static analysis that checks (nonexecutable) uniqueness annotations superimposed on an imperative programming language without destructive reads. The ‘alias-burying’ intuition is that aliases that are ‘dead’ (will never be used again) can be safely ‘buried’ (made undefined).
منابع مشابه
Alias Killing: Unique Variables without Destructive Reads
An unshared object can be accessed without regard to possible connicts with other parts of a system, whether concurrent or single-threaded. A unique variable (sometimes known as a \free" or \linear" variable) is one that either is null or else refers to an unshared object. Being able to declare and check which variables are unique improves a pro-grammer's ability to avoid program faults. In pre...
متن کاملCapabilities for Uniqueness and Borrowing
An important application of unique object references is safe and efficient message passing in concurrent object-oriented programming. However, to prevent the ill effects of aliasing, practical systems often severely restrict the shape of messages passed by reference. Moreover, the problematic interplay between destructive reads–often used to implement unique references–and temporary aliasing th...
متن کاملRNA-seq data from different developmental stages of Rafflesia cantleyi floral buds
Rafflesia cantleyi, known as one of the world's largest flowers, is a specialised holoparasite due to dramatic morphological modifications. It possesses highly reduced vegetative structure and only appears as a flower for sexual reproduction. Moreover, it has an unusual life cycle in that its floral bud development takes up to nine months. In order to fully understand the highly modified floral...
متن کاملN-acetyl-L-cysteine inhibits marble-burying behavior in mice.
In the present study, we examined the effect of N-acetyl-L-cysteine (NAC), a glutamate-modulating agent, on marble-burying behavior in mice. Fluvoxamine (30 mg/kg, p.o.) and mirtazapine (3 mg/kg, i.p.) significantly inhibited marble-burying behavior without affecting locomotor activity. Similarity, NAC (150 mg/kg, i.p.) significantly inhibited marble-burying behavior without affecting locomotor...
متن کاملEditorial: Aliasing in object-oriented systems
Aliasing is naturally endemic in object-oriented programs. Every object in an object-oriented program can refer to many other objects, so the overall topology of a program is a general graph. The state of an object can rely on the states of all of the other objects it references. Aliasing occurs when one object is reachable via multiple paths, usually because it is referenced by several other o...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Softw., Pract. Exper.
دوره 31 شماره
صفحات -
تاریخ انتشار 2001